package framework.concurrent;

public class DeviceServer extends framework.sequential.DeviceServer {

	Thread thread = null;

	public DeviceServer(String deviceName) {
		super(deviceName);
	}

	@Override
	public void start() {
		if (thread == null) {
			thread = new Thread(this);
			thread.start();
		}
	}

	@Override
	public void stop() {
		thread = null;
	}

	@Override
	public void run() {
		while (thread == Thread.currentThread()) {
			loop(); // 逐次モデルのループは効率が悪い
			try {
				Thread.sleep(0);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}

	@Override
	public boolean hasRequest() {
		// 現在キューにあるかどうかではなく、
		// 将来キューから取得できるかによりtrueを返す
		return true;
	}

}
